package com.atguigu.gmall.payment.service;

import com.atguigu.gmall.model.order.OrderInfo;
import com.atguigu.gmall.model.payment.PaymentInfo;

import java.util.Map;

/**
 *
 * 交易信息管理 service接口
 * @author : zjj
 * @date : 2021/2/7 14:51
 */

public interface PaymentService {
    /**
     * 保存交易信息
     * @param orderInfo     订单信息
     * @param paymentType   支付类型：支付宝，微信
     */
    void savePaymentInfo(OrderInfo orderInfo, String paymentType);

    /**
     * 根据第三方交易编号，支付方式查询交易记录对象
     * @param outTradeNo        第三方交易编号
     * @param paymentType              支付方式
     * @return                  交易信息
     */
    PaymentInfo getPaymentInfo(String outTradeNo,String paymentType);

    /**
     * 支付成功，修改交易记录的状态
     * @param outTradeNO            第三方交易编号
     * @param paymentType           支付方式
     * @param paramMap              参数map
     */
    void paySuccess(String outTradeNO, String paymentType, Map<String,String> paramMap);

    /**
     * 根据第三方交易编号，更新数据
     * @param outTradeNo    第三方交易编号
     * @param paymentInfo   交易信息
     */
    void updatePaymentInfo(String outTradeNo,PaymentInfo paymentInfo);
}
